package com.sikaryofficial.qrcode.config;

import com.sikaryofficial.system.api.model.qrcode.ProductQrUrlVO;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;

import java.util.List;

/**
 * @author : qinjinyuan
 * @desc : ProductQrUrlConfig
 * @date : 2023/10/31 16:51
 */
@Configuration
@RefreshScope
@ConfigurationProperties(prefix = "hismk.qrcode")
@Getter
@Setter
public class ProductQrUrlConfig {
    /**
     * 多品牌地址映射关系
     */
    private List<ProductQrUrlVO> qrScanUrlList;
    /**
     * 二维码文件生成的路径
     */
    private String folderPath;
    /**
     * 生成二维码下载文件的批次数量
     */
    private Integer productQRBatchSize;
    /**
     * 计算批次 ，mongoDB 默认是 1000一个批次执行
     */
    private Integer qrPartitionBatchSize;
    /**
     * 生成二维码下载文件的后缀
     */
    private String productQRStoreFileType;
    /**
     * 二维码最后的随机字符长度
     */
    private Integer productQRRandomLength;
    /**
     * 生成商品二维码的单次最大数量
     */
    private Long productQRMax;
    /**
     * 单批次插入mongoDB的最大数量
     */
    private Integer qrInsertBatchSize;

    public ProductQrUrlVO getQrUrlByCode(String brandNo) {
        return qrScanUrlList.stream().filter(item -> item.getBrandNo().equalsIgnoreCase(brandNo)).findFirst().orElse(new ProductQrUrlVO());
    }
}
